package com.fastwire.carriere.service;

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

import com.fastwire.carriere.discovery.vo.DiscoveryRecordVo;
import com.fastwire.carriere.schedule.vo.ScheduledTaskVo;
import com.fastwire.carriere.service.webui.exception.ServiceException;
import com.fastwire.carriere.serviceorder.vo.OrderSearchCriteriaVo;
import com.fastwire.carriere.serviceorder.vo.ServiceOrderVo;
import com.fastwire.carriere.user.vo.SessionVo;

@WebService(targetNamespace = "http://activeservice.fastwire.com", name = "ActiveService")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL)
public interface ActiveService {

	@WebMethod
	public String searchbyOrderSearchCriteria(OrderSearchCriteriaVo criteriaVo,
			SessionVo sessionVo) throws ServiceException;

	@WebMethod
	public String performManualEBOD(ServiceOrderVo serviceOrderVo,
			SessionVo sessionVo) throws ServiceException;

	@WebMethod
	public String createServiceOrder(ServiceOrderVo serviceOrderVo,
			SessionVo sessionVo) throws ServiceException;

	@WebMethod
	public String updateServiceOrder(ServiceOrderVo serviceOrderVo,
			SessionVo sessionVo) throws ServiceException;

	@WebMethod
	public List<DiscoveryRecordVo> getDiscoveryRecordbySearchCriteria(
			DiscoveryRecordVo searchCriteraVo, SessionVo sessionVo)
			throws ServiceException;

	@WebMethod
	public String cancelScheduledDiscoveryTask(ScheduledTaskVo taskVo,
			SessionVo sessionVo) throws ServiceException;

	@WebMethod
	public String createDiscoveryTask(ScheduledTaskVo taskVo,
			SessionVo sessionVo) throws ServiceException;

	@WebMethod
	public List<ScheduledTaskVo> getAllDiscoveryTasks(SessionVo sessionVo)
			throws ServiceException;

	@WebMethod
	public String createProvisioningTask(ScheduledTaskVo taskVo,
			SessionVo sessionVo) throws ServiceException;
	
	@WebMethod
	public String startScheduler(
			SessionVo sessionVo)throws ServiceException;

}
